// console.log(global)

// console.log('__dirname: ', __dirname)
// console.log('__filename: ', __filename)

const os = require('os')
// // os.tmpdir()
// console.log('os.tmpdir(): ', os.tmpdir())
// // os.cpus()
// // console.log('os.cpus(): ', os.cpus())
// // os.arch()
// console.log('os.arch(): ', os.arch())
// // os.hostname()
// console.log('os.hostname(): ', os.hostname())
// os.totalmem()
// console.log('os.totalmem(): ', os.totalmem())
// os.freemem()
// console.log('os.freemem(): ', os.freemem())

const path = require('path')
// // path.basename()
// // console.log('path.basename(): ', path.basename('../app.js'))
// // // path.dirname('d:/webFront/uniapp')
// // console.log('path.dirname', path.dirname(__dirname))
// // path.join('/a', 'b')
// // console.log('path.join', path.join('/a', 'b'))
// console.log(path.resolve('/a', '../b', 'c'))

const url = require('url')
// let href = 'http://api.chengsong.info?id=1'
// // url.parse(href,true) // 解析网址，返回url对象
// // console.log('url.parse(href,true): ', url.parse(href, true))
// // url.resolve(href, 'api')
// console.log('url.resolve(href): ', url.resolve(href, 'api'))

const querystring = require('querystring')

// // query字符串转换为对象
// querystring.parse('id=1&name=cs')
// console.log('querystring.parse', querystring.parse('id=1&name=cs'))
// querystring.decode('id=1&name=cs')

// // 对象转为query字符串
// querystring.stringify({ id: 1, name: 'cs' })
// querystring.encode({ id: 1, name: 'cs' })
// console.log('querystring.stringify', querystring.stringify({ id: 1, name: 'cs' }))

// process.env
// console.log('process.env: ', process.env)

const fs = require('fs')
// fs.writeFileSync('a.txt', '12')
// let s = fs.readFileSync('a.txt', 'utf-8', function (err, data) {
//     if (err) {
//         return console.error(err)
//     }
//     console.log('异步读取: ' + data.toString())
// })
// console.log(s)
// let res = fs.existsSync('a.txt')
// console.log('res: ', res)
// fs.stat('a.txt', function (err, stats) {
//     console.log(stats) //true
// })
// fs.unlink('b.txt', (err) => {})

const http = require('http')
const util = require('util')
// const server = http.createServer()
// server.on('request', (req, res) => {
//     console.log('req.url: ', req.url)
//     res.statusCode = 200
//     // if (req.url == '/cs') {
//     //     console.log('cs')
//     //     res.end('蒋晟松')
//     // } else if (req.url == '/') {
//     //     res.end('123')
//     // } else {
//     //     res.end('error')
//     // }

//     // 静态资源服务器
//     // var pathname = url.parse(req.url).pathname
//     // // console.log('pathname: ', pathname)
//     // //真的读取这个文件
//     // fs.readFile('../public' + pathname, function (err, data) {
//     //     if (err) {
//     //         // 注意这个header的设置不能设置到图片数据上面，会出现格式错误
//     //         res.setHeader('Content-Type', 'text/html;charset=utf-8')
//     //         //如果此文件不存在，就应该用404返回
//     //         res.end('不存在')
//     //         return
//     //     }
//     //     res.end(data)
//     // })
//     // console.log(' req.query: ', req.query)

//     // console.log(url.parse(req.url, true))
//     // var params = url.parse(req.url, true).query
//     // console.log('params: ', params)
//     // res.write('网站名：' + params.name)
//     // res.write('\n')
//     // res.write('网站 URL：' + params.url)
//     // res.end()

//     var body = ''
//     req.on('data', function (chunk) {
//         body += chunk
//     })
//     req.on('end', function () {
//         // 解析参数
//         console.log('body: ', body)
//         body = querystring.parse(body)
//         console.log('body: ', body)
//         // 设置响应头部信息及编码
//         res.writeHead(200, { 'Content-Type': 'text/html; charset=utf8' })

//         if (body.name && body.url) {
//             // 输出提交的数据
//             res.write('网站名：' + body.name)
//             res.write('网站 URL：' + body.url)
//         } else {
//             // 输出表单
//             res.write('cs')
//         }
//         res.end()
//     })
// })

// server.listen(8000, () => {
//     console.log('服务启动')
// })

const express = require('express')
const app = express()
var session = require('cookie-session')

app.use(
    session({
        name: 'sessionId',
        secret: 'cscscscsca', // 这的secret是对sessionid进行加密，防止伪造
        maxAge: 20 * 60 * 1000,
        rolling: true, // 让时间滚动刷新
    }),
)

app.get('/a', (req, res) => {
    console.log(req.session['count'])
    if (req.session['count']) {
        req.session['count'] += 1
        res.send({ cookie: 'cookie页面', count: req.session['count'] })
    } else {
        res.send('no cookie of count')
        req.session['count'] = 1
    }
})

app.get('/', (req, res) => {
    // 这里可直接传入对象
    res.send({ id: 1, name: '蒋晟松' })
})
app.post('/post', (req, res) => {})
// 其他的put，delete这些都差不多

app.get('/id/:id', (req, res) => {
    console.log(req.params)
    res.send({ id: req.params.id, name: '蒋晟松' })
})

app.use('/images', express.static('../public/images'))
app.use(express.urlencoded({ extended: false }))
app.use(express.json())

app.get('/err', (req, res) => {
    throw new Error('发生错误')
})
app.use((err, req, res, next) => {
    console.log('err:', err)
    res.send('error:' + err.message)
})

app.use((req, res, next) => {
    res.status(404).send('404')
})
app.listen(8000, () => {
    console.log('运行')
})
